package JZ.JZ01;

/*
解题思路：
由于数组从左到右，从上到下都是依次递增的，所以右上角的数都是该行最大值，该列最小值
所以我们可以将目标值与最右上角的数进行比较
    如果目标值大于最右上角的数，则可以去掉该行数据；
    如果目标值小于最右上角的数，则可以去掉该列数据；
*/
public class Solution {
    public boolean Find(int target, int [][] array) {
        //数组判空
        if((array.length == 0 || array  == null) || (array.length == 1 && array[0].length ==0 )){
            return false;
        }
        int i = 0, j = array[0].length -1;//此时ij表示二维数组右上角
        while(i<=array.length-1 && j >= 0){
            //判断ij是否为寻找的值
            if(target == array[i][j]){
                return true;
            }
            if(target > array[i][j]){
                i++;
            }else{
                j--;
            }
        }
        return false;
    }
}
